using Gateway.Common.Entity;

namespace Gateway.Domain.Entities;

/// <summary>
/// 租户
/// </summary>
public class Tenant : AggregateRootEntityBase
{
    public Tenant(string tenantName = default, string tenantAliasName = default, string tenantCode = default,
        string contactName = default, string contactPhone = default, DateTime expireTime = default,
        string tenantAddress = default, string tenantMail = default, string tenantDomain = default,
        string logoUrl = default)
    {
        TenantName = tenantName;
        TenantAliasName = tenantAliasName;
        TenantCode = tenantCode;
        ContactName = contactName;
        ContactPhone = contactPhone;
        ExpireTime = expireTime;
        TenantAddress = tenantAddress;
        TenantMail = tenantMail;
        TenantDomain = tenantDomain;
        LogoUrl = logoUrl;
    }
    public void Update(string tenantName = default, string tenantAliasName = default, 
        string contactName = default, string contactPhone = default, DateTime expireTime = default,
        string tenantAddress = default, string tenantMail = default, string tenantDomain = default,
        string logoUrl = default)
    {
        TenantName = tenantName;
        TenantAliasName = tenantAliasName;
        ContactName = contactName;
        ContactPhone = contactPhone;
        ExpireTime = expireTime;
        TenantAddress = tenantAddress;
        TenantMail = tenantMail;
        TenantDomain = tenantDomain;
        LogoUrl = logoUrl;
    }
    /// <summary>
    /// 租户名称
    /// </summary>
    public string TenantName { get; private set; }

    /// <summary>
    /// 租户别名
    /// </summary>
    public string TenantAliasName { get;private set; }

    /// <summary>
    /// 租户编号
    /// </summary>
    public string TenantCode { get;private set; }

    /// <summary>
    /// 联系人名称
    /// </summary>
    public string ContactName { get;private set; }

    /// <summary>
    /// 联系人电话
    /// </summary>
    public string ContactPhone { get;private set; }

    /// <summary>
    /// 过期时间
    /// </summary>
    public DateTime ExpireTime { get;private set; }

    /// <summary>
    /// 租户地址
    /// </summary>
    public string TenantAddress { get;private set; }

    /// <summary>
    /// 租户邮箱
    /// </summary>
    public string TenantMail { get;private set; }

    /// <summary>
    /// 域名
    /// </summary>
    public string TenantDomain { get;private set; }

    /// <summary>
    /// logo 地址
    /// </summary>
    public string LogoUrl { get;private set; }

    public Tenant()
    {
    }
}